// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.statement.SQLCreateStatement;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;

#include "MySqlCreateTableSpaceStatement.h"
#include "../../../../ast/SQLExpr.h"
#include "../../../../ast/SQLName.h"
#include "../../visitor/MySqlASTVisitor.h"

void MySqlCreateTableSpaceStatement::accept0(MySqlASTVisitor_ptr visitor)
{
  if (visitor->visit(SharedObject(MySqlCreateTableSpaceStatement)))
  {
    acceptChild(visitor, name);
    acceptChild(visitor, addDataFile);
    acceptChild(visitor, initialSize);
    acceptChild(visitor, extentSize);
    acceptChild(visitor, autoExtentSize);
    acceptChild(visitor, fileBlockSize);
    acceptChild(visitor, logFileGroup);
    acceptChild(visitor, maxSize);
    acceptChild(visitor, nodeGroup);
    acceptChild(visitor, comment);
    acceptChild(visitor, engine);
  }
  visitor->endVisit(SharedObject(MySqlCreateTableSpaceStatement));
}

SQLName_ptr MySqlCreateTableSpaceStatement::getName()
{
  return name;
}

void MySqlCreateTableSpaceStatement::setName(SQLName_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->name = x;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getAddDataFile()
{
  return addDataFile;
}

void MySqlCreateTableSpaceStatement::setAddDataFile(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->addDataFile = x;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getInitialSize()
{
  return initialSize;
}

void MySqlCreateTableSpaceStatement::setInitialSize(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->initialSize = x;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getFileBlockSize()
{
  return fileBlockSize;
}

void MySqlCreateTableSpaceStatement::setFileBlockSize(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->fileBlockSize = x;
}

BOOL_ptr MySqlCreateTableSpaceStatement::isWait()
{
  return wait;
}

void MySqlCreateTableSpaceStatement::setWait(BOOL_ptr wait)
{
  this->wait = wait;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getEngine()
{
  return engine;
}

void MySqlCreateTableSpaceStatement::setEngine(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->engine = engine;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getLogFileGroup()
{
  return logFileGroup;
}

void MySqlCreateTableSpaceStatement::setLogFileGroup(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->logFileGroup = x;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getExtentSize()
{
  return extentSize;
}

void MySqlCreateTableSpaceStatement::setExtentSize(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->extentSize = x;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getAutoExtentSize()
{
  return autoExtentSize;
}

void MySqlCreateTableSpaceStatement::setAutoExtentSize(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->autoExtentSize = x;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getMaxSize()
{
  return maxSize;
}

void MySqlCreateTableSpaceStatement::setMaxSize(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->maxSize = x;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getNodeGroup()
{
  return nodeGroup;
}

void MySqlCreateTableSpaceStatement::setNodeGroup(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->nodeGroup = x;
}

SQLExpr_ptr MySqlCreateTableSpaceStatement::getComment()
{
  return comment;
}

void MySqlCreateTableSpaceStatement::setComment(SQLExpr_ptr x)
{
  if (x != nullptr)
  {
    x->setParent(SharedObject(MySqlCreateTableSpaceStatement));
  }
  this->comment = x;
}
